package com.example.demo.controller.wxPay;

import com.example.demo.pojo.vip.Weixin.NotifyDto;
import com.example.demo.service.WxPayService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/wxPay")
public class WxPayController {
    private static final Logger logger = LoggerFactory.getLogger(WxPayController.class);
    @Resource
    private WxPayService wxPayService;

//    /**
//     * 微信订单生成接口
//     *
//     * @param token token
//     * @return 微信支付地址
//     */
//    @GetMapping("/CreateWxPayOrder")
//    public R<T> CreateOrder(@CookieValue(name = "token", required = false) String token
//            , @RequestBody Integer total
//            , @RequestBody String description) {
//        if (token == null || token.isEmpty() || !JwtUtils.verifyToken(token)) {
//            logger.warn("管理员未登录或登录异常");
//            return R.failed("请先登录！");
//        }
//
//        try {
//            return wxPayService.CreateOrder(token, total, description);
//        } catch (Exception e) {
//            logger.error("生成订单失败", e);
//            return R.failed("生成订单失败！");
//        }
//    }

    /**
     * 支付回调接口
     *
     * @param dto 订单状态
     * @return 支付成功或失败
     */
    @PostMapping("/PayNotify")
    public ResponseEntity<?> PayNotify(@RequestBody NotifyDto dto) {
        return wxPayService.PayNotify(dto);
    }

//    /**
//     * 取消订单接口
//     *
//     * @param outTradeNo 订单号
//     * @return 取消结果
//     */
//    @PostMapping("/CloseOrder")
//    public R<T> CloseOrder(@RequestParam String outTradeNo) {
//        try {
//            return wxPayService.CloseOrder(outTradeNo);
//        } catch (Exception e) {
//            logger.error("取消订单失败失败", e);
//            return R.failed("取消订单失败！");
//        }
//    }

}
